package com.itheima;

import java.util.ArrayList;
import java.util.Iterator;

/*
*
 * 演示 ArrayList集合的用法
 * 1.构造函数
 * ----1. ArrayList()
 * ----2. ArrayList(int initialCapacity)
 * ----3. ArrayList(Collection<? extends E> c)
 *
 * 2.成员方法
 * -----1.add(E e) //增，在末尾增加
 * -----2.add(int index, E element)//增，在索引处增加
 * -----3.remove(int index)//删，删除索引处
 * -----4.set(int index, E element)//改，更改索引处
 * -----5.get(int index)//查，查找索引处
 * -----6.size()
 * -----7.clear()
 * -----8.contains(Object obj)
 * -----9.获取迭代器
*/
public class ArrayListDemo {
            public static void main(String[] args){
        //1.创建arrayList对象
        //底层赋值了一个空数组
        ArrayList<String> list = new ArrayList<String>();
        //2.往arrayList中添加数据
        //方法重载：方法名一样，参数列表不一样；
        //增add
        list.add("张三");
        list.add(0, "李四");

        //查get
        String s = list.get(1);//list.get(1).var
        System.out.println(s);

        //改set
        list.set(0, "王五");
        list.add("三张");
        list.add("李四");
        list.add("赵六");
        list.add("王七");

        //删remove
        list.remove(1);
        System.out.println(list);

        System.out.println("-----------集合遍历方式1------------");
        //1.for循环的形式
        for (int i = 0; i < list.size(); i++) {
            String obj = list.get(i);
            System.out.println(obj);
        }
        System.out.println("-----------集合遍历方式2------------");
        //增强for循环的形式
        for (String obj : list) {
            System.out.println(obj);
        }
        //3.迭代器的形式
        System.out.println("-----------集合遍历方式3------------");
        //获取集合的迭代器对象
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()){
            String next = iterator.next();
            System.out.println(next);
        }

        //Lambda表达式
        System.out.println("-----------集合遍历方式4------------");
        //Lambda表达式本质就是一个函数
//        Consumer<String> consumer = ;
        list.forEach(s1-> System.out.println(s1));
        list.forEach(System.out::println);
    }

}